#ifndef __FLOW_PROC_H
#define __FLOW_PROC_H
#include <stdint.h>

#include "lgQuantRec.h"

typedef enum
{
         STATE_IDLE,       //空闲  状态，继电器全部打开 （无效），流量无，累积量不增加，频率无，
                       //当且仅当在idle状态才可以    
                            //可以进行选择预设值，
                           //可以进入配置界面，
                           //可以查询日志
                           //可以进入修改累积量，
                       //其他状态不能进入其他gui操作
         STATE_PUMP_RELAY,  //泵阀延时
                       
	 STATE_RUN,        //加料  手工模式，清零/开始会进入此模式，单次定量，继电器闭合，流量有，累积量增加，频率有，完成次数加1
	                   //自动模式，配置为自动，并且按了开始会进入此模式，如果没配置自动，则开始进入 手工模式，等价于STATE_RUN_ONCE，
	                   //自动模式，会重复定量，继电器闭合，流量有，累积量增加，频率有，当定量值达到预设值，则完成次数加1，间歇时间后， 再次进入自动模式，
	                   //循环，时间到达自动时间限制，则自动进入IDLE,
	 STATE_PAUSE,      //暂停  模式，急停进入此模式，流量是0进入此模式，（可能是自动定量或者单次定量进入），继电器打开，流量无，累积量不增加，频率无
	 STATE_ZERO_DELAY, //回零  延时
}STATE_RUNNING;

extern volatile uint8_t  gRunState;         //运行状态
extern volatile uint8_t  gSwitchBigState;   //大阀状态
extern volatile uint8_t  gSwitchTinyState;  //小阀状态


void  FlowInit();

void  KeyStopProc(QuantiEndFlag endReason);

void KeyClearReset(); 
//检查流量是否到达，并执行相关操作
void  lgOnTimeFlowCheck();

#endif
